GitHub 통합
Claude Code는 GitHub Actions 내에서 Claude를 실행할 수 있는 공식 GitHub 통합 기능을 제공합니다. 이 통합은 두 가지 주요 워크플로우를 제공합니다: 이슈 및 풀 리퀘스트에 대한 멘션 지원과 자동 풀 리퀘스트 리뷰입니다.
통합 설정하기
시작하려면 Claude에서 /install-github-app을 실행하세요. 이 명령어는 설정 과정을 단계별로 안내합니다:
- GitHub에 Claude Code 앱 설치
- API 키 추가
- 워크플로우 파일이 포함된 풀 리퀘스트 자동 생성
생성된 풀 리퀘스트는 저장소에 두 개의 GitHub Actions를 추가합니다. 병합하면 .github/workflows 디렉터리에 워크플로우 파일이 생성됩니다.
기본 GitHub Actions
통합 기능은 두 가지 주요 워크플로우를 제공합니다:
멘션 액션
이슈 또는 풀 리퀘스트에서 @claude를 사용해 Claude를 멘션할 수 있습니다. 멘션되면 Claude는 다음을 수행합니다:
- 요청을 분석하고 작업 계획 수립
- 코드베이스에 대한 전체 접근 권한으로 작업 실행
- 이슈 또는 PR에 직접 결과 응답
풀 리퀘스트 액션
풀 리퀘스트를 생성할 때마다 Claude가 자동으로:
- 제안된 변경 사항 리뷰
- 수정 사항의 영향 분석
- 풀 리퀘스트에 상세 보고서 게시
워크플로우 커스터마이징
초기 풀 리퀘스트를 병합한 후, 프로젝트 요구에 맞게 워크플로우 파일을 커스터마이징할 수 있습니다. 멘션 워크플로우를 개선하는 방법은 다음과 같습니다:
프로젝트 설정 추가
Claude 실행 전에 환경을 준비하는 단계를 추가할 수 있습니다:
- name: Project Setup
run: |
npm run setup
npm run dev:daemon
커스텀 지침
프로젝트 설정에 대한 컨텍스트를 Claude에 제공하세요:
custom_instructions: |
The project is already set up with all dependencies installed.
The server is already running at localhost:3000. Logs from it
are being written to logs.txt. If needed, you can query the
db with the 'sqlite3' cli. If needed, use the mcp__playwright
set of tools to launch a browser and interact with the app.
MCP 서버 구성
Claude에 추가 기능을 부여하기 위해 MCP 서버를 구성할 수 있습니다:
mcp_config: |
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--allowed-origins",
"localhost:3000;cdn.tailwindcss.com;esm.sh"
]
}
}
}
도구 권한
GitHub Actions에서 Claude를 실행할 때는 허용된 모든 도구를 명시적으로 나열해야 합니다. 이는 MCP 서버를 사용할 때 특히 중요합니다.
allowed_tools: "Bash(npm:*),Bash(sqlite3:*),mcp__playwright__browser_snapshot,mcp__playwright__browser_click,..."
로컬 개발과 달리, GitHub Actions에서는 권한에 대한 단축 방법이 없습니다. 각 MCP 서버의 모든 도구를 개별적으로 나열해야 합니다.
모범 사례
Claude의 GitHub 통합을 설정할 때:
- 기본 워크플로우로 시작하여 점진적으로 커스터마이징하기
- 커스텀 지침을 사용하여 프로젝트별 컨텍스트 제공하기
- MCP 서버 사용 시 도구 권한을 명확하게 지정하기
- 복잡한 작업 전에 간단한 작업으로 워크플로우 테스트하기
- 추가 단계 구성 시 프로젝트의 특정 요구 사항 고려하기
GitHub 통합은 Claude를 개발 보조 도구에서 작업 처리, 코드 리뷰, 통찰력 제공을 GitHub 워크플로우 내에서 직접 수행할 수 있는 자동화된 팀원으로 변환합니다.
